1. Field of the Invention
The present invention relates to data processing, and is more particularly related to notification services.
2. Discussion of the Background
Rules based processing systems date back to the introduction of LISP (List Processing) to computer technology. LISP was primarily used in the AI (Artificial Intelligence) community to manipulate lists of data. Since that time the rules processing development tools were mostly targeted for simulations and Al type systems. It has only been recently that rules based systems have found newer markets because of easier code maintenance and high data processing performance.
With the advent and subsequent pervasiveness of the Internet, newer web-based technologies have become more dominant in their use and construction. The flexibility of these architectures has been to separate the clients and servers into tiers or levels of abstraction. Also, with the introduction of expert systems, business rule technologies have become more widely used.
Software business rules are the policies and procedures of a business captured in executable format. Business logic is the logic involved in implementing the policies and procedures of the business. In this context, business logic includes the assertions, assumptions and operations that define the policies and procedures of the business. Any software code that is not concerned with manipulation of the computing environment (e.g., retrieving data from storage, memory allocation, service invocations, etc.) is potentially a business rule. Business rules range in scope from simple validations to complex, multi-step procedures. Rules are always aligned with some aspect of business processes (e.g., invoicing, sales, manufacturing), commonly called domains. At the same time, rules are often invoked across business boundaries, for example, a sales application may invoke employee (e.g., human resource) rules to calculate a commission.
The separation of business logic from the internal source code has been a design pattern that has been promoted because of the flexibility it affords with respect to code reuse and modularity. A contemporary enterprise is defined by and encapsulated in its information systems. In effect, company policy manuals are now implemented in business software. The impetus for publishing policies and procedures of a business has been to enforce a consistent implementation across the enterprise. Computerization has not changed this requirement. However, implementation of such a system has been costly.
A rule, in general, is a statement that can be used to verify premises and enable a conclusion to be drawn. A rule-based system is an approach to problem solving based on an xe2x80x9cIF this, THEN thatxe2x80x9d approach that uses a set of rules, a database of information, and a xe2x80x9crule interpreterxe2x80x9d to match premises with facts and form a conclusion.
There are several considerations associated with implementing business rules for an enterprise. For example, the human reasoning behind a rule, or the xe2x80x9cessencexe2x80x9d of the rule, is often changed in transitioning from human-oriented user requirements to actual software code. In addition, the same logical rules may be implemented in several different software applications in an inconsistent manner. When rules are implemented as software code, the identification of specific business rules within a software application, or across several software applications, is often difficult or impossible. Also, modifying business rules embedded in traditional software applications in response to changing business conditions is difficult, time-consuming, costly and risky. One important aspect of such systems is the implementation of notification services.
Various designs and architecture schemes have evolved to address the need to abstract business-level actions from internal code workings of the software components. Object programming languages, client/server and n-Tier architectures, as an example, have become more prevalent as the software industry has evolved.
Traditional data processing systems have used the concept of computer generated notifications that are based on an object state or information state. Notifications in most legacy systems are generated either by calling specific methods or procedures that contain code associated directly with the desired notification. For example, if a notification that acknowledge that a user""s request to purchase an item through an online shopping system (e.g., Sale Invoice) were required, traditional applications would call a specific method like generateNotification(ticket number, user Info, notification Type) or generateInvoiceNotification(ticket number, user Info) on a server or ticket object. The implementation details, such as the type of notification and contents of the notification, are tied directly to the method or procedure. When a new notification is needed, for example, a Thank You notification, the code in generateNotification( ) would have to be changed or a new method generateThankYouNotification( ) would have to be created.
A drawback with the traditional approach is that the implementation of the domain space is tied directly to the information contained within the object or the information passed through a procedure or method call. As the business conditions change, the implementation of the computer code must be modified to provide new responses and actions by the systems. Also, as the information changes or if new objects are added into the domain space, again the implementation of source code within a computer system must change. Hence, traditional systems lack modularity with respect to notification services.
Based on the foregoing, there is a clear need for improved approaches for implementing business rules to effect notifications.
There is also a need to increase architectural and design flexibility to adapt to changing business policies and conditions.
There is a further need to increase development modularity.
There is also a need to reduce development cost.
Based on the need to streamline the implementation of business rules, an approach for generating notifications that are independent of the system processes is highly desirable.
According to one aspect of the invention, a computer implemented method is provided for providing notifications. The method also includes mapping a business rule to a business trigger point, in which the business rule corresponds to a business process at a life cycle state of an event. In addition, the method encompasses sending one of the notifications to a notification target based upon the business trigger point. The one notification contains information that is based upon the business rule actions. Under this approach, design flexibility is enhanced, permitting adaptation to business policies and conditions without code change.
According to another aspect of the invention, a computer implemented system for providing notifications comprises a database that stores a business rule. A business rule manager module maps the business rule to a business trigger point. The business rule corresponds to a business process at a life cycle state of an event. The business rule manager module sends one of the notifications in response to the business trigger point. A notification target receives the one notification, which contains information that is based upon business rule actions. The above arrangement advantageously provides development modularity.
In yet another aspect of the invention, a computer-readable medium carrying one or more sequences of one or more instructions for providing notifications. The one or more sequences of one or more instructions include instructions which, when executed by one or more processors, cause the one or more processors to perform the step of mapping a business rule to a business trigger point. The business rule corresponds to a business process at a life cycle state of an event. Another step comprises sending one of the notifications to a notification target based upon the business trigger point. The one notification contains information that is based upon the business rule actions. This approach advantageously reduces system development cost.